home *** CD-ROM | disk | FTP | other *** search
/ Light ROM 1 / LIGHT-ROM 1 (Amiga Library Services)(1994).iso / ffdisks / d936.lha / TKEd / Rexx / Help.tked < prev    next >
Text File  |  1993-12-20  |  5KB  |  172 lines

  1. /** ---------------------------------------------------------------
  2.  ** Arexx Programm um das Wort unter dem Cursor
  3.  ** in einer Hilfs-Datei zu suchen, und den
  4.  ** entsprechenden Hilfstext auszugeben.
  5.  ** ---------------------------------------------------------------
  6.  ** AREXX-Programm to find the word under the cursor in a help-file
  7.  ** and to display the help-text
  8.  ** ---------------------------------------------------------------
  9.  **
  10.  ** Installation  : In TKEd-AREXX-Menus mit
  11.  **                 Help.tked TKEd:Help/ARexx-hlp
  12.  **
  13.  **                 Das Programm 'Help.tked' muß sich im 'REXX:' Ordner
  14.  **                 befinden!
  15.  ** 
  16.  ** Programm von : Christoph Kirsch, 1992
  17.  ** 
  18.  **  Hilfs-Datei : In der Variable HDatei definiert.
  19.  ** Trennzeichen : Jeder Hilfstext wird durch die in der Variable
  20.  **                TZeichen definierte Zeichenfolge abgeschlossen.
  21.  **
  22.  ** Ergänzung von: Tom Kroener
  23.  **                Cursor braucht nicht mehr auf dem ersten Buchstaben
  24.  **                des Wortes zu stehen, sondern kann beliebig im Wort
  25.  **                positioniert sein; außerdem wurden ein paar potentielle
  26.  **                Fehlerquellen (keine Leerzeichen, sondern ~+-* usw. 
  27.  **                zwischen den Worten) beseitigt
  28.  **-----------------------------------------------------------------------
  29.  ** AREXX-program to search for the current word in a special help-
  30.  ** file and display a helptext (if the word was found; see the
  31.  ** name under the *** in the helpfiles in the directory 'TKEd:Help'
  32.  ** for examples)
  33.  ** Installation  : Into the TKEd-AREXX-menus:
  34.  **                 async noreq Help.tked TKEd:Help/ARexx.hlp
  35.  ** 
  36.  **  Help-file   : The name is defined in the variable HDatei
  37.  **                Each help-text is ended by the TZeichen variable
  38.  **/
  39.  
  40. options results
  41. address 'TKEd.1'
  42.  
  43. HDatei = arg(1)                     /* Hilfsdatei wird übergeben */
  44.  
  45. MakeTitle "Ich suche..."
  46.  
  47. TZeichen = "***"                    /* Trennzeichen */
  48. OderCode = "*"
  49. Ende = 0
  50.  
  51. DO WHILE Ende = 0
  52.   GetColumnNr
  53.   IF result = 1 THEN Ende = 1
  54.   Cursor "LEFT"
  55.   GetChar
  56.   IF (result=" ") | (result='(') | (result=')') | (result='=') | (result='/') | (result='*') | (result='-') | (result='+') | (result='|') | (result='~') | (result='#') | (result=';') | (result='"') | (result="'")
  57.     THEN DO
  58.       Ende = 1
  59.       NextWord
  60.   END;
  61. END;
  62.  
  63. GetChar
  64. Zeichen = result
  65.  
  66. GetChar                             /* Zeichen unter Cursor */
  67. Zeichen = result
  68. Ende = 0
  69. Wort = Zeichen                      /* Wort unter Cursor */
  70. GetLineLen                          /* Zeilenlänge feststellen */
  71. MaxSpalte = result+1
  72.  
  73. DO WHILE Ende = 0                   /* Nächstes Leerzeichen */
  74.   Cursor "RIGHT"                    /* oder Zeilenende suchen */
  75.   GetChar                           /* und solange Buchstaben */
  76.   Zeichen = result                  /* anhängen */
  77.   GetColumnNr
  78.   Spalte = result
  79.   IF Spalte = MaxSpalte THEN Ende = 1
  80.   IF (Zeichen=" ") | (Zeichen='(') | (Zeichen=')') | (Zeichen='=') | (Zeichen='/') | (Zeichen='*') | (Zeichen='-') | (Zeichen='+') | (Zeichen='|') | (Zeichen='~') | (Zeichen='#') | (Zeichen=';') | (Zeichen="'") | (Zeichen='"') THEN Ende = 1
  81.   IF Ende = 0 THEN Wort = Wort || Zeichen
  82. END;
  83. Wort = upper(Wort)
  84. IF ~open('datei',HDatei,'Read')     /* Hilfsdatei öffnen */
  85.   THEN DO
  86.     Request1 "Kann Hilfsdatei nicht öffnen!"
  87.     EXIT 5
  88.   END
  89.  
  90. DO WHILE ~EOF('datei')             /* Trennzeichen suchen */
  91.   Text = ReadLn('datei')
  92.   IF Text = TZeichen               /* Wenn gefunden, dann ist nächste */
  93.     THEN DO                        /* Zeile ein Suchbegriff */
  94.       Abb = 0
  95.       Ja = 0
  96.       DO WHILE (Abb = 0)
  97.         Text = ReadLn('datei')     /* Suchbegriff vergleichen */
  98.         IF Wort = upper(Text)
  99.           THEN DO
  100.             Ja = 1
  101.             Abb = 1
  102.           END
  103.         ELSE DO
  104.           Text = ReadLn('datei')
  105.           IF ~(Text = OderCode) THEN Abb = 1
  106.         END
  107.       END
  108.       IF Ja = 1
  109.       THEN DO                      /* wenn gleich, dann */
  110.         WBtoFront
  111.         call open('hcon','CON:0/11/640/189/Hilfe')
  112.         DO WHILE ~EOF('datei')
  113.           Text = ReadLn('datei')
  114.           DO WHILE (Text = OderCode)
  115.             Text = ReadLn('datei')
  116.             Text = ReadLn('datei')
  117.           END
  118.           IF ~(Text = TZeichen) THEN call WriteLn('hcon',Text)
  119.           ELSE BREAK
  120.         END
  121.         call WriteLn('hcon','RETURN drücken.')
  122.         call ReadLn 'hcon'
  123.         call Close('hcon')
  124.         call Close('datei')
  125.         TKEdToFront
  126.         EXIT 0
  127.       END
  128.     END
  129. END
  130.  
  131. call close('datei')                 /* keinen Text gefunden */
  132.  
  133. Request2 "Keinen Hilfstext gefunden! Stichworte zeigen?"
  134. index = result
  135.  
  136. if index=10 then exit 0             /* kein Index -> Ende */
  137.  
  138. IF ~open('datei',HDatei,'Read')     /* Hilfsdatei erneut öffnen */
  139.   THEN DO
  140.     Request1 "Kann Hilfsdatei nicht öffnen!"
  141.     EXIT 5
  142.   END
  143.  
  144. WBtoFront
  145. call open('hcon','CON:0/11/640/189/Mögliche Stichworte')
  146.  
  147. voll = 0                            /* Alle Stichworte anzeigen */
  148. do while ~eof('datei')
  149.   text = readln('datei')
  150.   if (text = TZeichen) | (text = OderCode)
  151.   then do
  152.     text = readln('datei')
  153.     call writeln('hcon',text)
  154.     voll = voll + 1
  155.     if voll = 19
  156.     then do
  157.       call writeln('hcon','')
  158.       call writeln('hcon','RETURN drücken für mehr.')
  159.       call readln 'hcon'
  160.       voll = 0
  161.     end
  162.   end
  163. end
  164. call writeln('hcon','ENDE - Taste drücken.')
  165. call readln 'hcon'
  166.  
  167. TKEdtoFront
  168. call close('datei')
  169.  
  170. EXIT 0
  171.  
  172.